A growing application for relational database systems is a data warehouse which stores a vast quantity of data concerning, for example, a company's ongoing operations in a collection of tables. In such data warehouse systems, changes made to an entry in a particular table within the database may require changes to other entries. For example, a change to a product price entry may necessitate changes to a projected revenue entry. One method of implementing such changes is through the use of triggers.
A trigger is a database object capable of executing specified triggered actions when a designated triggering statement occurs on a subject table with which the trigger is associated. Execution of the triggered action or actions, after the triggering action occurs, may additionally be contingent upon the satisfaction of certain conditions, or trigger conditions, within the trigger. For example, the trigger may be designed to insert a row into a second table if, after an update to a first table, a value in the first table exceeds a certain amount.
Existing systems utilize statement triggers, which are evaluated once for each triggering statement. In certain circumstances, triggering events may cause iterative processing of the trigger with individual rows triggering separate changes which may require explicit coding of the required changes. Additionally, where a large number of rows are affected by the triggering statement interaction between a parsing engine and processing modules may result in excessive traffic on the system.